A storage system usually includes a host and a storage device, such as a nonvolatile memory device. The storage device writes data upon receiving a write command from the host. The storage device typically includes a plurality of physical blocks for storing data, and each of the physical blocks includes a plurality of memory cells grouped by physical sector. Memory cells of one type can store data of multiple bits. For example, a memory of a multi-level-cell (MLC) type can store data of two bits, and a memory of a triple-level-cell (TLC) type can store data of three bits. When a write operation is carried out in the storage device having memory cells of the MLC type, data are written as lower bits of memory cells in a physical sector, which is referred to as a lower page program, and thereafter other data are written as upper bits of the memory cells, which is referred to as an upper page program.
In some occasions, a program error may occur during the upper page program.
If such a program error occurs during the upper page program, data of lower bits written through the lower page program may become unreadable or lost.